Typically, an electronic system includes a number of integrated circuit chips that communicate with one another to perform system applications. Often, the electronic system includes a controller, such as a micro-processor, and one or more memory chips, such as random access memory (RAM) chips. The controller communicates with the memory to store data and to read the stored data.
The RAM chips can be any suitable type of RAM, such as dynamic RAM (DRAM) including single data rate synchronous DRAM (SDR-SDRAM), double data rate SDRAM (DDR-SDRAM), graphics DDR-SDRAM (GDDR-SDRAM), low power SDR-SDRAM (LPSDR-SDRAM), and low power DDR-SDRAM (LPDDR-SDRAM). Also, the RAM chips can be any suitable generation of memory including fourth generation DDR-SDRAM (DDR4-SDRAM), fifth generation GDDR-SDRAM (GDDR5-SDRAM), and higher generations of memory. Usually, each new generation of memory operates at an increased clock speed and/or an increased data rate from the previous generation.
Some memories use data bit inversion (DBI), which is also referred to as data bus inversion, to reduce the number of zeros that are transmitted and to improve signal integrity. For example, an 8-bit data byte may be inverted if more than fifty percent of the data bits within the byte are zeros. A DBI flag is typically generated and transmitted with the data to indicate whether data bytes are inverted or not. For memories that have high level termination, using DBI to reduce the number of signal lines driving a low level (e.g., zero) results in reduced power dissipation in the termination resistors and output drivers. Also, DBI improves the signal quality by reducing the supply noise induced jitter on the data lines.